A random number generator is an apparatus that produces a new number or sequence of numbers in such a way that the results are randomly distributed among the set of possible numbers and independent of the previously generated numbers. Random number generators have many uses in conjunction with computer applications. They are used in computer simulations and communications. For example, such numbers are used in state of the art communications networks for use with retransmission adapters that help to remedy data collisions when they occur. Random number generators are also used frequently in the encryption and decryption of data. For example, in classical cryptography methodology, referred to as single-key cryptography, there is a single piece of private and necessarily secret information--the key--which is many times produced by means of a random number generator. Here, the key is known to and used by the originator of a message to encrypt information into a cipher and is also known to and used by the intended recipient to decrypt the cipher.
There are many applications for data encryption in the public as well as the private sector. Governments are perhaps the most prominent users of data encryption services which many times will be used to ensure secure communications between two locations. The military is a prime example of a government entity which relies heavily on data encryption to ensure the integrity of its communications. The need for secure communications is present at all levels of the military, that is, for communications originating from a top commanding officer down to the field personnel on location during engagement with an enemy. Thus, in order to ensure secure communications at the field and other levels, a new communications security (COMSEC) key will many times have to be generated and implemented between communications devices while in the field. This requires that a random number generator for such applications be operable on equipment which is easily mobilized in the field, for example, a personal computer.
Other random number generators or pseudo-random generators exist which perform random number generation on what is known in the industry as a personal computer (PC), i.e., IBM Personal Computer (PC) or compatible PC. One of the shortcomings of these random number generators, however, is the low precision number (the number of bits) produced when using personal computers as the platform for producing such numbers. For example, most of the random number generators used with the IBM or IBM compatible PCs have the capability of generating only a 32-bit random number. Many of the applications which utilize these random numbers, however, require a random number security key of a much higher precision, i.e., greater number of bits. For example, one of the most commonly used battlefield communication devices, the SINCGARS-FMS family of radios, built and distributed by the ITT Corporation, requires a random number COMSEC key of 112 bits.
It is therefore an objective of the present invention to provide a random number generator that is capable of generating high precision pseudo-random numbers on a highly mobile computer platform.
It is further an object of the present invention to provide a high precision pseudo-random number generator that is operable within a personal computer environment.